package org.apache.beam.examples.Models;

import org.apache.beam.examples.Models.enums.QualityType;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

public class QualityRuleDetailModel implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 表主键
     */
    private String detailId;

    /**
     * 所属规则主键
     */
    private String qualityId;

    /**
     * 字段代码
     */
    private String columnCode;

    /**
     * 字段名称
     */
    private String columnName;

    /**
     * 字段检查类型组合
     */
    private List<QualityType> qualityTypes;

    /**
     * 检查项字典
     */
    private NounNode noun;

    public String getDetailId() {
        return detailId;
    }

    public void setDetailId(String detailId) {
        this.detailId = detailId;
    }

    public String getQualityId() {
        return qualityId;
    }

    public void setQualityId(String qualityId) {
        this.qualityId = qualityId;
    }

    public String getColumnCode() {
        return columnCode;
    }

    public void setColumnCode(String columnCode) {
        this.columnCode = columnCode;
    }

    public String getColumnName() {
        return columnName;
    }

    public void setColumnName(String columnName) {
        this.columnName = columnName;
    }

    public List<QualityType> getQualityTypes() {
        return qualityTypes;
    }

    public void setQualityTypes(List<QualityType> qualityTypes) {
        this.qualityTypes = qualityTypes;
    }

    public NounNode getNoun() {
        return noun;
    }

    public void setNoun(NounNode noun) {
        this.noun = noun;
    }

    /**
     * 创建对象的方法
     * @param detailId 字段详情的配置id
     * @param qualityId 规则id
     * @param columnCode 字段代码
     * @param columnName 字段名称
     * @param qualityTypes 校验类型
     * @param noun 字典内容
     */
    public QualityRuleDetailModel(String detailId, String qualityId, String columnCode, String columnName, List<QualityType> qualityTypes, NounNode noun) {
        this.detailId = detailId;
        this.qualityId = qualityId;
        this.columnCode = columnCode;
        this.columnName = columnName;
        this.qualityTypes = qualityTypes;
        this.noun = noun;
    }

    public QualityRuleDetailModel() {
    }
}
